# pack200(1) completion                                    -*- shell-script -*-

_pack200()
{
    local cur prev words cword split
    _init_completion -s || return

    case $prev in
        -S | --segment-limit | -P | --pass-file | -C | --class-attribute | \
            -F | --field-attribute | -M | --method-attribute | -D | \
            --code-attribute | '-?' | -h | --help | -V | --version | -J)
            return
            ;;
        -E | --effort)
            COMPREPLY=($(compgen -W '{0..9}' -- "$cur"))
            return
            ;;
        -H | --deflate-hint)
            COMPREPLY=($(compgen -W 'true false keep' -- "$cur"))
            return
            ;;
        -m | --modification-time)
            COMPREPLY=($(compgen -W 'latest keep' -- "$cur"))
            return
            ;;
        -U | --unknown-attribute)
            COMPREPLY=($(compgen -W 'error strip pass' -- "$cur"))
            return
            ;;
        -f | --config-file)
            _filedir properties
            return
            ;;
        -l | --log-file)
            COMPREPLY=($(compgen -W '-' -- "$cur"))
            _filedir log
            return
            ;;
        -r | --repack)
            _filedir jar
            return
            ;;
    esac

    $split && return

    # Check if a pack or a jar was already given.
    local i pack=false jar=false
    for ((i = 1; i < ${#words[@]} - 1; i++)); do
        case ${words[i]} in
            *.pack | *.pack.gz) pack=true ;;
            *.jar) jar=true ;;
        esac
    done

    if ! $pack; then
        if [[ $cur == -* ]]; then
            COMPREPLY=($(compgen -W '--no-gzip --gzip --strip-debug
                --no-keep-file-order --segment-limit= --effort= --deflate-hint=
                --modification-time= --pass-file= --unknown-attribute=
                --class-attribute= --field-attribute= --method-attribute=
                --code-attribute= --config-file= --verbose --quiet --log-file=
                --help --version -J --repack' -- "$cur"))
            [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
        else
            _filedir 'pack?(.gz)'
        fi
    elif ! $jar; then
        _filedir jar
    fi
} &&
    complete -F _pack200 pack200

# ex: filetype=sh
